#自动生成功能已添加，可直接运行，并在输入阶段直接回车键自动生成随机数字进行测试

import random
import sys

sys.set_int_max_str_digits(0)


def data():   #生成n与k的值，可以手动输入或自动生成
    n = 0
    k = 0
    while True:
        a = input("请输入n的值（1 <= n < 10^100000），输入小数取整数部分，直接回车键则生成随机数：")
        if len(a) == 0:
            n = random.randint(1, 10 ** 100000-1)
            break

        elif int(a) < 1 or int(a) >= 10 ** 100000:
            print('输入超出范围，重新输入')
            continue

        else:
            n = int(a)
            break

    while True:
        b = input("请输入k的值（1 <= n <= 10^5），输入小数取整数部分，直接回车键则生成随机数：")
        if len(b) == 0:
            k = random.randint(1, 10 ** 5)
            break

        elif int(b) < 1 or int(b) > 10 ** 5:
            print('输入超出范围，重新输入')
            continue

        else:
            k = int(b)
            break
    print(f'k的值为{n}\nn的值为{k}')
    return n, k


def get_super(x, y=1):  #递归计算super值
    n = str(x) * y
    sum = 0
    for i in n:
        sum += int(i)
    if sum < 10:
        return sum
    else:
        return get_super(sum)


if __name__ == '__main__':
    n, k = data()
    sum = get_super(n, k)
    print(f'super_digit={sum}')
